#ifndef NANE_IFILEARCHIVESYSTEM_H
#   define  NANE_IFILEARCHIVESYSTEM_H

#   include "nane/core/ISubSystem.h"
#   include "nane/core/IFileSystem.h"

namespace nane
{
    struct IFileArchive
    {
        virtual IReadFile* OpenFile( const char* _filename ) = 0;
    };
    
    struct IFileArchiveSystem
        : public ISubSystem
    {
        virtual const char* GetFileType() = 0;
        virtual IFileArchive* CreateArchive( IInputSeekableRef* _input ) = 0;
        virtual IFileArchive* CreateArchive( const char* _filename ) = 0;
        virtual void ReleaseArchive( IFileArchive* _fileArchive ) = 0;
    };
}   // namespace nane

#endif  // NANE_IFILEARCHIVESYSTEM_H
